package com.jh3502.vivo.net;


import com.jh3502.vivo.base.BaseJson;
import com.jh3502.vivo.utils.Constant;

import java.util.Map;

import retrofit2.Call;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.Header;
import retrofit2.http.POST;

public interface ApiList {

    //登录
    @POST("/login")
    @FormUrlEncoded
    Call<BaseJson> login(@FieldMap Map<String, Object> body);

    //查询当前登陆用户信息
    @POST("/appww/getUser")
    @FormUrlEncoded
    Call<BaseJson> getUser(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, Object> body);

    // 查询未读消息总数
    @POST("/appmsg/findUnreadSum")
    Call<BaseJson> findUnreadSum(@Header(Constant.APP_TOKEN) String token);


    //修改密码
    @POST("/appww/changePwd")
    @FormUrlEncoded
    Call<BaseJson> changePwd(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, Object> body);

    //修改用户信息
    @POST("/appww/updateUser")
    @FormUrlEncoded
    Call<BaseJson> updateUser(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, Object> body);


    //查询我的银行账户
    @POST("/appww/findaccount")
    @FormUrlEncoded
    Call<BaseJson> findaccount(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, Object> body);

    //更新我的银行账户
    @POST("/appww/modifyaccount")
    @FormUrlEncoded
    Call<BaseJson> modifyaccount(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, Object> body);


    //删除我的消息
    @POST("/appmsg/deleteMsg")
    @FormUrlEncoded
    Call<BaseJson> deleteMsg(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, Object> body);

    //查询我的消息
    @POST("/appmsg/findMsg")
    Call<BaseJson> findMsg(@Header(Constant.APP_TOKEN) String token);

    //查询我的消息记录
    @POST("/appmsg/findMsgRecords")
    @FormUrlEncoded
    Call<BaseJson> findMsgRecords(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, Object> body);

    //查询待办任务数量
    @POST("/task/findTdNum")
    Call<BaseJson> findTdNum(@Header(Constant.APP_TOKEN) String token);

    //查询待办任务
    @POST("/task/findTodo")
    Call<BaseJson> findTodo(@Header(Constant.APP_TOKEN) String token);

    //提交(或变更)出差申请
    @POST("/travel/sumtravel")
    @FormUrlEncoded
    Call<BaseJson> sumtravel(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, Object> body);

    //获得我发起的出差(或者报销)申请
    @POST("/travel/getMyTask")
    @FormUrlEncoded
    Call<BaseJson> getMyTask(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, Object> body);

    //获得需要我审批的出差（或者报销)申请
    @POST("/expense/findAuditTask")
    @FormUrlEncoded
    Call<BaseJson> findAuditTask(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, Object> body);

    //查询组织通讯录：
    @POST("/appww/getorganization")
    @FormUrlEncoded
    Call<BaseJson> getorganization(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, Object> body);

    //查询该用户的授权范围（委托对象范围）：
    @POST("/entrust/findEntrustUsers")
    Call<BaseJson> findEntrustUsers(@Header(Constant.APP_TOKEN) String token);

    //根据申请单Id查询出差申请：
    @POST("/travel/getTravelById")
    @FormUrlEncoded
    Call<BaseJson> getTravelById(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, Object> body);

    //根据表单Id 查询报销单详情：
    @POST("/expense/getExpenseById")
    @FormUrlEncoded
    Call<BaseJson> getExpenseById(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, Object> body);

    //审批任务
    @POST("/task/agreeForAll")
    @FormUrlEncoded
    Call<BaseJson> agreeForAll(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, Object> body);


    //删除我的审批（或报销）记录：
    @POST("/expense/deleteAudit")
    @FormUrlEncoded
    Call<BaseJson> deleteAudit(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, Object> body);

    //删除我的发起的记录：
    @POST("/travel/deleteTask")
    @FormUrlEncoded
    Call<BaseJson> deleteTask(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, Object> body);

    //查询出差申请变更记录：
    @POST("/travel/getChangeAndAuditRecords")
    @FormUrlEncoded
    Call<BaseJson> getChangeAndAuditRecords(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, Object> body);

    //查询报销人员
    @POST("/expense/findExpensePerson")
    Call<BaseJson> findExpensePerson(@Header(Constant.APP_TOKEN) String token);

    //查询交通工具类别：
    @POST("/expense/findTraffic")
    Call<BaseJson> findTraffic(@Header(Constant.APP_TOKEN) String token);

    //查询开户行：
    @POST("/appww/findOpenBank")
    Call<BaseJson> findOpenBank(@Header(Constant.APP_TOKEN) String token);

    //查询需要报销的申请单：
    @POST("/expense/findTravelForm")
    @FormUrlEncoded
    Call<BaseJson> findTravelForm(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, Object> body);

    //提交报销的申请
    @POST("/expense/submitExpense")
    @FormUrlEncoded
    Call<BaseJson> submitExpense(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, Object> body);

    //查询用户住宿费标准
    @POST("/expense/findHotelStandard")
    @FormUrlEncoded
    Call<BaseJson> findHotelStandard(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, Object> body);

    //查询授权事件列表：
    @POST("/entrust/findPermissList")
    Call<BaseJson> findPermissList(@Header(Constant.APP_TOKEN) String token);

    //查询我给他人的授权列表
    @POST("/entrust/findMyEntrust")
    Call<BaseJson> findMyEntrust(@Header(Constant.APP_TOKEN) String token);

    //提交授权事件：
    @POST("/entrust/submitEntrust")
    @FormUrlEncoded
    Call<BaseJson> submitEntrust(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, Object> body);

    //删除授权：：
    @POST("/entrust/delEntrust")
    @FormUrlEncoded
    Call<BaseJson> delEntrust(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, Object> body);

    //启用或关闭授权：
    @POST("/entrust/enableEntrust")
    @FormUrlEncoded
    Call<BaseJson> enableEntrust(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, Object> body);

    //查询报销审批记录：
    @POST("/expense/findExpenseAudits")
    @FormUrlEncoded
    Call<BaseJson> findExpenseAudits(@Header(Constant.APP_TOKEN) String token, @FieldMap Map<String, Object> body);

}
